/*************************************************************************  
 *   This file is part of UBBMPSREADER.
 *
 *   UBBMPSREADER is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *   UBBMPSREADER is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with UBBMPSREADER.  If not, see <http://www.gnu.org/licenses/>. 
 *************************************************************************/

package cs.ubbcluj.ro.datatypes;

/**
 * Vector interface
 * 
 * @author avadas
 * @version 1.0
 */
public interface Vector {

    void newValue(int index, double value);

    int index(int index);

    int size();

    double get(int index);

    void set(int index, double value) throws InterruptedException;

    int length();

    double product(Vector v) throws InterruptedException;

    Vector product(double value);

    Vector product(Matrix m, Vector result) throws InterruptedException;

    public Vector sum(Vector v) throws InterruptedException;

    public Vector diff(Vector v) throws InterruptedException;

    public Vector inv();

    void productScalar(int index, double value);

    void set(Vector v);

    double min();

    void round();
}
